PHP array_intersect 函数
一、函数功能:
计算多个数组共同的键值交集(只考虑键值,不考虑键名)。数组的键名不参与比较,但返回数组中保留键值对应的键名不变。关于计算数组交集系列函数的区别请参考:http://aiezu.com/article/php_array_intersect_sets.html。
二、函数语法:
三、函数参数:
四、返回值:
五、用法举例:
1、两个数组的比较:
比较时忽视key,返回结果中保留键名:
2、三个数组的比较:
只会返回第一个数组中,同时出现在其他所有数组中的键值。
3、array_intersect是将数组值强制转换为"string"后进行"==="(全等于)比较:
由于false强制转换为string后为"",数组强制转换为string后为"Array",所以下面例子运行结果返回$arr1的所有键值。
计算多个数组共同的键值交集(只考虑键值,不考虑键名)。数组的键名不参与比较,但返回数组中保留键值对应的键名不变。关于计算数组交集系列函数的区别请参考:http://aiezu.com/article/php_array_intersect_sets.html。
二、函数语法:
array array_intersect ( $array1 , $array2 [, $... ] )
三、函数参数:
参数名 | 描述 |
---|---|
$array1 | 参与比较的第一个数组; |
$array2 | 参与比较的第二个数组; |
... | 参与比较的更多数组。 |
四、返回值:
返回一个数组,该数组包含了参数中所有数组共同的键值。
五、用法举例:
1、两个数组的比较:
比较时忽视key,返回结果中保留键名:
<?php $arr1 = array('aa', 'z'=>'aiezu.com', 'cc'); $arr2 = array('a'=>'aa', 'aiezu.com', 'c'); print_r(array_intersect($arr1, $arr2));输出:
Array ( [0] => aa [z] => aiezu.com )
2、三个数组的比较:
只会返回第一个数组中,同时出现在其他所有数组中的键值。
<?php $arr1 = array('aa', 'b'=>'aiezu.com', 'cc'); $arr2 = array('a'=>'aa', 'aiezu.com', 'c'); $arr3 = array('cc', '爱E族', 'aa'); print_r(array_intersect($arr1, $arr2, $arr3));输出:
Array ( [0] => aa )
3、array_intersect是将数组值强制转换为"string"后进行"==="(全等于)比较:
由于false强制转换为string后为"",数组强制转换为string后为"Array",所以下面例子运行结果返回$arr1的所有键值。
<?php $arr1 = array("", array(1)); $arr2 = array(false, array(2)); print_r(array_intersect($arr1, $arr2));输出:
Array ( [0] => [1] => Array ( [0] => 1 ) )